package com.turnengine.client.local.message.bean;

import com.javabi.codebuilder.generated.IGeneratedBean;
import com.turnengine.client.local.message.enums.LocalMessageStatus;
import com.turnengine.client.local.message.enums.LocalMessageType;

/**
 * The I Local Message Header.
 */
public interface ILocalMessageHeader extends IGeneratedBean, Comparable<ILocalMessageHeader> {

	/**
	 * Returns the id.
	 * @return the id.
	 */
	int getId();

	/**
	 * Returns the sender id.
	 * @return the sender id.
	 */
	int getSenderId();

	/**
	 * Returns the recipient id.
	 * @return the recipient id.
	 */
	int getRecipientId();

	/**
	 * Returns the subject.
	 * @return the subject.
	 */
	String getSubject();

	/**
	 * Returns the thread id.
	 * @return the thread id.
	 */
	int getThreadId();

	/**
	 * Returns the timestamp.
	 * @return the timestamp.
	 */
	long getTimestamp();

	/**
	 * Returns the status.
	 * @return the status.
	 */
	LocalMessageStatus getStatus();

	/**
	 * Returns the type.
	 * @return the type.
	 */
	LocalMessageType getType();

	/**
	 * Sets the id.
	 * @param id the id to set.
	 */
	void setId(int id);

	/**
	 * Sets the sender id.
	 * @param senderId the sender id to set.
	 */
	void setSenderId(int senderId);

	/**
	 * Sets the recipient id.
	 * @param recipientId the recipient id to set.
	 */
	void setRecipientId(int recipientId);

	/**
	 * Sets the subject.
	 * @param subject the subject to set.
	 */
	void setSubject(String subject);

	/**
	 * Sets the thread id.
	 * @param threadId the thread id to set.
	 */
	void setThreadId(int threadId);

	/**
	 * Sets the timestamp.
	 * @param timestamp the timestamp to set.
	 */
	void setTimestamp(long timestamp);

	/**
	 * Sets the status.
	 * @param status the status to set.
	 */
	void setStatus(LocalMessageStatus status);

	/**
	 * Sets the type.
	 * @param type the type to set.
	 */
	void setType(LocalMessageType type);
}
